home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / cunmqr.z / cunmqr
Text File  |  1998-10-30  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. CCCCUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))                                                          CCCCUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CUNMQR - overwrite the general complex M-by-N matrix C with   SIDE = 'L'
  10.      SIDE = 'R' TRANS = 'N'
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK,
  14.                         LWORK, INFO )
  15.  
  16.          CHARACTER      SIDE, TRANS
  17.  
  18.          INTEGER        INFO, K, LDA, LDC, LWORK, M, N
  19.  
  20.          COMPLEX        A( LDA, * ), C( LDC, * ), TAU( * ), WORK( LWORK )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      CUNMQR overwrites the general complex M-by-N matrix C with TRANS = 'C':
  24.      Q**H * C       C * Q**H
  25.  
  26.      where Q is a complex unitary matrix defined as the product of k
  27.      elementary reflectors
  28.  
  29.            Q = H(1) H(2) . . . H(k)
  30.  
  31.      as returned by CGEQRF. Q is of order M if SIDE = 'L' and of order N if
  32.      SIDE = 'R'.
  33.  
  34.  
  35. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  36.      SIDE    (input) CHARACTER*1
  37.              = 'L': apply Q or Q**H from the Left;
  38.              = 'R': apply Q or Q**H from the Right.
  39.  
  40.      TRANS   (input) CHARACTER*1
  41.              = 'N':  No transpose, apply Q;
  42.              = 'C':  Conjugate transpose, apply Q**H.
  43.  
  44.      M       (input) INTEGER
  45.              The number of rows of the matrix C. M >= 0.
  46.  
  47.      N       (input) INTEGER
  48.              The number of columns of the matrix C. N >= 0.
  49.  
  50.      K       (input) INTEGER
  51.              The number of elementary reflectors whose product defines the
  52.              matrix Q.  If SIDE = 'L', M >= K >= 0; if SIDE = 'R', N >= K >=
  53.              0.
  54.  
  55.      A       (input) COMPLEX array, dimension (LDA,K)
  56.              The i-th column must contain the vector which defines the
  57.              elementary reflector H(i), for i = 1,2,...,k, as returned by
  58.              CGEQRF in the first k columns of its array argument A.  A is
  59.              modified by the routine but restored on exit.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))                                                          CCCCUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDA     (input) INTEGER
  75.              The leading dimension of the array A.  If SIDE = 'L', LDA >=
  76.              max(1,M); if SIDE = 'R', LDA >= max(1,N).
  77.  
  78.      TAU     (input) COMPLEX array, dimension (K)
  79.              TAU(i) must contain the scalar factor of the elementary reflector
  80.              H(i), as returned by CGEQRF.
  81.  
  82.      C       (input/output) COMPLEX array, dimension (LDC,N)
  83.              On entry, the M-by-N matrix C.  On exit, C is overwritten by Q*C
  84.              or Q**H*C or C*Q**H or C*Q.
  85.  
  86.      LDC     (input) INTEGER
  87.              The leading dimension of the array C. LDC >= max(1,M).
  88.  
  89.      WORK    (workspace/output) COMPLEX array, dimension (LWORK)
  90.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  91.  
  92.      LWORK   (input) INTEGER
  93.              The dimension of the array WORK.  If SIDE = 'L', LWORK >=
  94.              max(1,N); if SIDE = 'R', LWORK >= max(1,M).  For optimum
  95.              performance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if
  96.              SIDE = 'R', where NB is the optimal blocksize.
  97.  
  98.      INFO    (output) INTEGER
  99.              = 0:  successful exit
  100.              < 0:  if INFO = -i, the i-th argument had an illegal value
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.